package lk.icta.core.dao;

import lk.icta.core.entity.GeologicalType;
import lk.icta.user.entity.User;

import java.util.List;
import java.util.Map;

/**
 * @author Supun Nimesh Karunathilaka
 */
public interface GeologicalTypeDAO {
    /**
     * add a GeologicalType
     *
     * @param geologicalType
     * @param user
     */
    public void addGeologicalType(GeologicalType geologicalType, User user);

    /**
     * update a GeologicalType
     *
     * @param geologicalType
     * @param user
     */
    public void updateGeologicalType(GeologicalType geologicalType, User user);

    /**
     * Returns a geologicalType corresponding to the given geologicalType id
     *
     * @param id
     * @param user
     * @return
     */
    public GeologicalType getGeologicalTypeById(int id, User user);

    /**
     * Returns list of all geological types in the given language.
     *
     * @param language Language to be list geological types
     * @param user     User requesting to list geological types
     * @return List of geological types in the given language
     */
    public Map<Integer, String> getAllGeologicalTypes(String language, User user);
}
